function Component(component: { selector: any; template: any }) {
    console.log(`selector: ` + component.selector);
    console.log(`template: ` + component.template);
    console.log(`component init`);
    return (target: any) => {
        console.log(`component call`);
        return target;
    };
}

function Directive() {
    console.log(`directive init`);
    return (target: any) => {
        console.log(`directive call`);
        return target;
    };
}

@Component({
    selector: `person`,
    template: `
    person.html
  `
})
@Directive()
export class Person {}

const p = new Person();
